package reviewQueue;

import java.util.LinkedList;
import java.util.Queue;
//两个队列模拟入栈
public class QueueStack {
    public Queue<Integer> q1;
    public Queue<Integer> q2;
    public QueueStack(){
        q1=new LinkedList<>();
        q2=new LinkedList<>();
    }
    //入栈
    public void push(int val){
        if(!q1.isEmpty()){
            q1.offer(val);
        } else if (!q2.isEmpty()) {
            q2.offer(val);
        }else{
            q1.offer(val);
        }
        System.out.println(val+"入栈成功！");
        System.out.println();
    }
    //判两个队列是否为空
    public boolean empty(){
        return q1.isEmpty()&&q2.isEmpty();
    }
    //出栈
    public void pop(){
        if(empty()){
            System.out.println("两个队为空！");
            return;
        }

        if(!q1.isEmpty()&&q2.isEmpty()) {
               int size=q1.size();
               for(int i=0;i<size-1;i++){
                   q2.offer(q1.poll());
               }
            System.out.println("出栈元素为:"+q1.poll());
        } else {
           int size=q2.size();
           for(int i=0;i<size-1;i++){
               q1.offer(q2.poll());
           }
            System.out.println("出栈元素为"+q2.poll());
        }

    }
    //获取栈顶元素
    public void peek(){
        if(empty()){
            System.out.println("两个队为空！");
        }
        int val = 0;
        if(!q1.isEmpty()&&q2.isEmpty()) {
            while (!q1.isEmpty()) {
                val = q1.poll();
                q2.offer(val);
            }
            System.out.println("获取的栈顶元素为" + val);
        } else if (!q2.isEmpty()&&q1.isEmpty()) {
            while (!q2.isEmpty()){
                val=q2.poll();
                q1.offer(val);
            }
            System.out.println("获取的栈顶元素为"+val);
        }
    }
}
